The present invention relates generally to the field of application servers, and more particularly to efficiently handling virtual machines during a server restart.
An application server is a software framework for providing facilities to create web applications and a server environment to run the applications. Application server frameworks include a comprehensive service layer model. The application server operates as a set of components that are accessible through a standard API defined for a particular platform. For Web applications, the set of components are usually accessed and performed in the same operating environment as their web server. Application servers support the construction of dynamic web pages. Many application servers target much more than just web page generation, but also implement services such as clustering, fail-over, and/or load-balancing. In that way, developers are able to focus on implementing the business logic for an application.
Java application servers behave like an extended virtual machine (VM) for running various applications while transparently handling connections to the database on one side of the process and/or connections to the web client on the other side. (Note: the term “JAVA” may be subject to trademark rights in various jurisdictions throughout the world and is used here only in reference to the products or services properly denominated by the marks to the extent that such trademark rights may exist.)
Java Platform, Enterprise Edition, or Java EE defines the core set of application programming interface (API) and features of Java Application Servers. The Java EE infrastructure is partitioned into logical containers including: (i) Enterprise JavaBeans (EJB) container; (ii) Java EE Connector Architecture (JCA) container; and (iii) Java Message Service (JMS) container. (Note: the term(s) “Enterprise Edition,” “JavaBeans,” “Java Message Service,” “EJB,” “JCA,” “JMS,” and/or “Java EE” may be subject to trademark rights in various jurisdictions throughout the world and are used here only in reference to the products or services properly denominated by the marks to the extent that such trademark rights may exist.)
There are various reasons that a Java application server may need to be restarted (i.e. stopped and started). For example, when a new version of the server code needs to be started, the old server code needs to be stopped.